{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.stats import norm"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Kalman Filter Implementation for Constant Velocity Model (CV) in Python\n",
    "\n",
    "![Image](http://www.cbcity.de/wp-content/uploads/2013/06/Fahrzeug_GPS_Tunnel-520x181.jpg)\n",
    "\n",
    "Situation covered: You drive with your car in a tunnel and the GPS signal is lost. Now the car has to determine, where it is in the tunnel. The only information it has, is the velocity in driving direction. The x and y component of the velocity ($\\dot x$ and $\\dot y$) can be calculated from the absolute velocity (revolutions of the wheels) and the heading of the vehicle (yaw rate sensor).\n",
    "\n",
    "`CC-BY-SA2.0 Lizenz Paul Balzer, Motorblog http://www.cbcity.de` "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "![Kalman Filter](Kalman-Filter-Step.png)\n",
    "\n",
    "First, we have to initialize the matrices and vectors. Setting up the math."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## State Vector\n",
    "\n",
    "Constant Velocity Model for Ego Motion\n",
    "\n",
    "$$x_k= \\left[ \\matrix{ x \\\\ y \\\\ \\dot x \\\\ \\dot y} \\right] = \\matrix{ \\text{Position X} \\\\ \\text{Position Y} \\\\ \\text{Velocity in X} \\\\ \\text{Velocity in Y}}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Formal Definition (Motion of Law):\n",
    "\n",
    "$$x_{k+1} = \\textbf{A} \\cdot x_{k}$$\n",
    "\n",
    "which is\n",
    "\n",
    "$$x_{k+1} = \\begin{bmatrix}1 & 0 & \\Delta t & 0 \\\\ 0 & 1 & 0 & \\Delta t \\\\ 0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 1 \\end{bmatrix} \\cdot \\begin{bmatrix} x \\\\ y \\\\ \\dot x \\\\ \\dot y \\end{bmatrix}_{k}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Observation Model:\n",
    "\n",
    "$$y = \\textbf{H} \\cdot x$$\n",
    "\n",
    "which is\n",
    "\n",
    "$$y = \\begin{bmatrix}0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 1\\end{bmatrix} \\cdot x$$ means: You observe the velocity directly in the correct unit"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Initial State $x_0$\n",
    "\n",
    "$$x_{0} = \\begin{bmatrix}0 \\\\ 0 \\\\ 0 \\\\ 0\\end{bmatrix}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 0.],\n",
      "        [ 0.],\n",
      "        [ 0.],\n",
      "        [ 0.]]), (4, 1))\n"
     ]
    }
   ],
   "source": [
    "x = np.matrix([[0.0, 0.0, 0.0, 0.0]]).T\n",
    "print(x, x.shape)\n",
    "#plt.scatter(float(x[0]),float(x[1]), s=100)\n",
    "#plt.title('Initial Location')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Initial Uncertainty $P_0$\n",
    "\n",
    "$$P_{0} = \\begin{bmatrix}\\sigma^2_x & 0 & 0 & 0 \\\\ 0 & \\sigma^2_y & 0 & 0 \\\\ 0 & 0 & \\sigma^2_{\\dot x} & 0 \\\\ 0 & 0 & 0 & \\sigma^2_{\\dot y} \\end{bmatrix}$$\n",
    "\n",
    "with $\\sigma$ as the standard deviation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(array([[ 1000.,     0.,     0.,     0.],\n",
      "       [    0.,  1000.,     0.,     0.],\n",
      "       [    0.,     0.,  1000.,     0.],\n",
      "       [    0.,     0.,     0.,  1000.]]), (4, 4))\n"
     ]
    }
   ],
   "source": [
    "P = np.diag([1000.0, 1000.0, 1000.0, 1000.0])\n",
    "print(P, P.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x115f1d6d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(6, 6))\n",
    "im = plt.imshow(P, interpolation=\"none\", cmap=plt.get_cmap('binary'))\n",
    "plt.title('Initial Covariance Matrix $P$')\n",
    "ylocs, ylabels = plt.yticks()\n",
    "# set the locations of the yticks\n",
    "plt.yticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.yticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$'), fontsize=22)\n",
    "\n",
    "xlocs, xlabels = plt.xticks()\n",
    "# set the locations of the yticks\n",
    "plt.xticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.xticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$'), fontsize=22)\n",
    "\n",
    "plt.xlim([-0.5,3.5])\n",
    "plt.ylim([3.5, -0.5])\n",
    "\n",
    "from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
    "divider = make_axes_locatable(plt.gca())\n",
    "cax = divider.append_axes(\"right\", \"5%\", pad=\"3%\")\n",
    "plt.colorbar(im, cax=cax);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Dynamic Matrix $A$\n",
    "\n",
    "It is calculated from the dynamics of the Egomotion.\n",
    "\n",
    "$$x_{k+1} = x_{k} + \\dot x_{k} \\cdot \\Delta t$$\n",
    "$$y_{k+1} = y_{k} + \\dot y_{k} \\cdot \\Delta t$$\n",
    "$$\\dot x_{k+1} = \\dot x_{k}$$\n",
    "$$\\dot y_{k+1} = \\dot y_{k}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 1. ,  0. ,  0.1,  0. ],\n",
      "        [ 0. ,  1. ,  0. ,  0.1],\n",
      "        [ 0. ,  0. ,  1. ,  0. ],\n",
      "        [ 0. ,  0. ,  0. ,  1. ]]), (4, 4))\n"
     ]
    }
   ],
   "source": [
    "dt = 0.1 # Time Step between Filter Steps\n",
    "\n",
    "A = np.matrix([[1.0, 0.0, dt, 0.0],\n",
    "              [0.0, 1.0, 0.0, dt],\n",
    "              [0.0, 0.0, 1.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 1.0]])\n",
    "print(A, A.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Measurement Matrix $H$\n",
    "\n",
    "We directly measure the Velocity $\\dot x$ and $\\dot y$\n",
    "\n",
    "$$H = \\begin{bmatrix}0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 1\\end{bmatrix}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 0.,  0.,  1.,  0.],\n",
      "        [ 0.,  0.,  0.,  1.]]), (2, 4))\n"
     ]
    }
   ],
   "source": [
    "H = np.matrix([[0.0, 0.0, 1.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 1.0]])\n",
    "print(H, H.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Measurement Noise Covariance $R$\n",
    "\n",
    "Tells the Kalman Filter how 'bad' the sensor readings are.\n",
    "\n",
    "$$R = \\begin{bmatrix}\\sigma^2_{\\dot x} & 0 \\\\ 0 & \\sigma^2_{\\dot y} \\end{bmatrix}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 100.,    0.],\n",
      "        [   0.,  100.]]), (2, 2))\n"
     ]
    }
   ],
   "source": [
    "ra = 10.0**2\n",
    "\n",
    "R = np.matrix([[ra, 0.0],\n",
    "              [0.0, ra]])\n",
    "print(R, R.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116bfc990>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot between -10 and 10 with .001 steps.\n",
    "xpdf = np.arange(-10, 10, 0.001)\n",
    "plt.subplot(121)\n",
    "plt.plot(xpdf, norm.pdf(xpdf,0,R[0,0]))\n",
    "plt.title('$\\dot x$')\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(xpdf, norm.pdf(xpdf,0,R[1,1]))\n",
    "plt.title('$\\dot y$')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Process Noise Covariance $Q$\n",
    "\n",
    "The Position of the car can be influenced by a force (e.g. wind), which leads to an acceleration disturbance (noise). This process noise has to be modeled with the process noise covariance matrix Q.\n",
    "\n",
    "$$Q = \\begin{bmatrix}\\sigma_{x}^2 & \\sigma_{xy} & \\sigma_{x \\dot x} & \\sigma_{x \\dot y} \\\\ \\sigma_{yx} & \\sigma_{y}^2 & \\sigma_{y \\dot x} & \\sigma_{y \\dot y} \\\\ \\sigma_{\\dot x x} & \\sigma_{\\dot x y} & \\sigma_{\\dot x}^2 & \\sigma_{\\dot x \\dot y} \\\\ \\sigma_{\\dot y x} & \\sigma_{\\dot y y} & \\sigma_{\\dot y \\dot x} & \\sigma_{\\dot y}^2 \\end{bmatrix}$$\n",
    "\n",
    "One can calculate Q as\n",
    "\n",
    "$$Q = G\\cdot G^T \\cdot \\sigma_v^2$$\n",
    "\n",
    "with $G = \\begin{bmatrix}0.5dt^2 & 0.5dt^2 & dt & dt\\end{bmatrix}^T$ and $\\sigma_v$ as the acceleration process noise, which can be assumed for a vehicle to be $8.8m/s^2$, according to: Schubert, R., Adam, C., Obst, M., Mattern, N., Leonhardt, V., & Wanielik, G. (2011). [Empirical evaluation of vehicular models for ego motion estimation](http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5940526). 2011 IEEE Intelligent Vehicles Symposium (IV), 534–539. doi:10.1109/IVS.2011.5940526"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "sv = 8.8\n",
    "\n",
    "G = np.matrix([[0.5*dt**2],\n",
    "               [0.5*dt**2],\n",
    "               [dt],\n",
    "               [dt]])\n",
    "\n",
    "Q = G*G.T*sv**2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$$\\left[\\begin{matrix}0.25 dt^{4} & 0.25 dt^{4} & 0.5 dt^{3} & 0.5 dt^{3}\\\\0.25 dt^{4} & 0.25 dt^{4} & 0.5 dt^{3} & 0.5 dt^{3}\\\\0.5 dt^{3} & 0.5 dt^{3} & dt^{2} & dt^{2}\\\\0.5 dt^{3} & 0.5 dt^{3} & dt^{2} & dt^{2}\\end{matrix}\\right]$$"
      ],
      "text/plain": [
       "⎡       4         4        3        3⎤\n",
       "⎢0.25⋅dt   0.25⋅dt   0.5⋅dt   0.5⋅dt ⎥\n",
       "⎢                                    ⎥\n",
       "⎢       4         4        3        3⎥\n",
       "⎢0.25⋅dt   0.25⋅dt   0.5⋅dt   0.5⋅dt ⎥\n",
       "⎢                                    ⎥\n",
       "⎢      3         3       2        2  ⎥\n",
       "⎢0.5⋅dt    0.5⋅dt      dt       dt   ⎥\n",
       "⎢                                    ⎥\n",
       "⎢      3         3       2        2  ⎥\n",
       "⎣0.5⋅dt    0.5⋅dt      dt       dt   ⎦"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import Symbol, Matrix\n",
    "from sympy.interactive import printing\n",
    "printing.init_printing()\n",
    "dts = Symbol('dt')\n",
    "Qs = Matrix([[0.5*dts**2],[0.5*dts**2],[dts],[dts]])\n",
    "Qs*Qs.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nI+XXHQBbAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b32f790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(6, 6))\n",
    "im = plt.imshow(Q, interpolation=\"none\", cmap=plt.get_cmap('binary'))\n",
    "plt.title('Process Noise Covariance Matrix $P$')\n",
    "ylocs, ylabels = plt.yticks()\n",
    "# set the locations of the yticks\n",
    "plt.yticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.yticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$'), fontsize=22)\n",
    "\n",
    "xlocs, xlabels = plt.xticks()\n",
    "# set the locations of the yticks\n",
    "plt.xticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.xticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$'), fontsize=22)\n",
    "\n",
    "plt.xlim([-0.5,3.5])\n",
    "plt.ylim([3.5, -0.5])\n",
    "\n",
    "from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
    "divider = make_axes_locatable(plt.gca())\n",
    "cax = divider.append_axes(\"right\", \"5%\", pad=\"3%\")\n",
    "plt.colorbar(im, cax=cax);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Identity Matrix $I$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(array([[ 1.,  0.,  0.,  0.],\n",
      "       [ 0.,  1.,  0.,  0.],\n",
      "       [ 0.,  0.,  1.,  0.],\n",
      "       [ 0.,  0.,  0.,  1.]]), (4, 4))\n"
     ]
    }
   ],
   "source": [
    "I = np.eye(4)\n",
    "print(I, I.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Measurements\n",
    "\n",
    "For example, we are using some random generated measurement values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2, 200)\n",
      "Standard Deviation of Acceleration Measurements=0.90\n",
      "You assumed 100.00 in R.\n"
     ]
    }
   ],
   "source": [
    "m = 200 # Measurements\n",
    "vx= 20 # in X\n",
    "vy= 10 # in Y\n",
    "\n",
    "mx = np.array(vx+np.random.randn(m))\n",
    "my = np.array(vy+np.random.randn(m))\n",
    "\n",
    "measurements = np.vstack((mx,my))\n",
    "\n",
    "print(measurements.shape)\n",
    "\n",
    "print('Standard Deviation of Acceleration Measurements=%.2f' % np.std(mx))\n",
    "print('You assumed %.2f in R.' % R[0,0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x116e7ed90>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116fc7fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(16,5))\n",
    "\n",
    "plt.step(range(m),mx, label='$\\dot x$')\n",
    "plt.step(range(m),my, label='$\\dot y$')\n",
    "plt.ylabel(r'Velocity $m/s$')\n",
    "plt.title('Measurements')\n",
    "plt.legend(loc='best',prop={'size':18})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "# Preallocation for Plotting\n",
    "xt = []\n",
    "yt = []\n",
    "dxt= []\n",
    "dyt= []\n",
    "Zx = []\n",
    "Zy = []\n",
    "Px = []\n",
    "Py = []\n",
    "Pdx= []\n",
    "Pdy= []\n",
    "Rdx= []\n",
    "Rdy= []\n",
    "Kx = []\n",
    "Ky = []\n",
    "Kdx= []\n",
    "Kdy= []\n",
    "\n",
    "def savestates(x, Z, P, R, K):\n",
    "    xt.append(float(x[0]))\n",
    "    yt.append(float(x[1]))\n",
    "    dxt.append(float(x[2]))\n",
    "    dyt.append(float(x[3]))\n",
    "    Zx.append(float(Z[0]))\n",
    "    Zy.append(float(Z[1]))\n",
    "    Px.append(float(P[0,0]))\n",
    "    Py.append(float(P[1,1]))\n",
    "    Pdx.append(float(P[2,2]))\n",
    "    Pdy.append(float(P[3,3]))\n",
    "    Rdx.append(float(R[0,0]))\n",
    "    Rdy.append(float(R[1,1]))\n",
    "    Kx.append(float(K[0,0]))\n",
    "    Ky.append(float(K[1,0]))\n",
    "    Kdx.append(float(K[2,0]))\n",
    "    Kdy.append(float(K[3,0]))    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Kalman Filter\n",
    "\n",
    "![Kalman Filter](Kalman-Filter-Step.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "for n in range(len(measurements[0])):\n",
    " \n",
    "    # Time Update (Prediction)\n",
    "    # ========================\n",
    "    # Project the state ahead\n",
    "    x = A*x\n",
    "    \n",
    "    # Project the error covariance ahead\n",
    "    P = A*P*A.T + Q\n",
    "    \n",
    "    \n",
    "    # Measurement Update (Correction)\n",
    "    # ===============================\n",
    "    # Compute the Kalman Gain\n",
    "    S = H*P*H.T + R\n",
    "    K = (P*H.T) * np.linalg.pinv(S)\n",
    "\n",
    "    \n",
    "    # Update the estimate via z\n",
    "    Z = measurements[:,n].reshape(2,1)\n",
    "    y = Z - (H*x)                            # Innovation or Residual\n",
    "    x = x + (K*y)\n",
    "    \n",
    "    # Update the error covariance\n",
    "    P = (I - (K*H))*P\n",
    "    \n",
    "    \n",
    "    \n",
    "    # Save states (for Plotting)\n",
    "    savestates(x, Z, P, R, K)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Thats it.\n",
    "\n",
    "![Job done](http://www.troll.me/images/the-chuck-norris/job-done.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Let's take a look at the filter performance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Kalman Gains $K$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_K():\n",
    "    fig = plt.figure(figsize=(16,9))\n",
    "    plt.plot(range(len(measurements[0])),Kx, label='Kalman Gain for $x$')\n",
    "    plt.plot(range(len(measurements[0])),Ky, label='Kalman Gain for $y$')\n",
    "    plt.plot(range(len(measurements[0])),Kdx, label='Kalman Gain for $\\dot x$')\n",
    "    plt.plot(range(len(measurements[0])),Kdy, label='Kalman Gain for $\\dot y$')\n",
    "\n",
    "    plt.xlabel('Filter Step')\n",
    "    plt.ylabel('')\n",
    "    plt.title('Kalman Gain (the lower, the more the measurement fullfill the prediction)')\n",
    "    plt.legend(loc='best',prop={'size':22})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b4c7410>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_K()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Uncertainty Matrix $P$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_P():\n",
    "    fig = plt.figure(figsize=(16,9))\n",
    "    plt.plot(range(len(measurements[0])),Px, label='$x$')\n",
    "    plt.plot(range(len(measurements[0])),Py, label='$y$')\n",
    "    plt.plot(range(len(measurements[0])),Pdx, label='$\\dot x$')\n",
    "    plt.plot(range(len(measurements[0])),Pdy, label='$\\dot y$')\n",
    "\n",
    "    plt.xlabel('Filter Step')\n",
    "    plt.ylabel('')\n",
    "    plt.title('Uncertainty (Elements from Matrix $P$)')\n",
    "    plt.legend(loc='best',prop={'size':22})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b4be850>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_P()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### State Estimate $x$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_x():\n",
    "    fig = plt.figure(figsize=(16,9))\n",
    "    plt.step(range(len(measurements[0])),dxt, label='$\\dot x$')\n",
    "    plt.step(range(len(measurements[0])),dyt, label='$\\dot y$')\n",
    "\n",
    "    plt.axhline(vx, color='#999999', label='$\\dot x_{real}$')\n",
    "    plt.axhline(vy, color='#999999', label='$\\dot y_{real}$')\n",
    "\n",
    "    plt.xlabel('Filter Step')\n",
    "    plt.title('Estimate (Elements from State Vector $x$)')\n",
    "    plt.legend(loc='best',prop={'size':22})\n",
    "    plt.ylim([0, 30])\n",
    "    plt.ylabel('Velocity')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nb5IP1Fqvn6wCAYCxLVu2LJ/85CezfPnyfOlLX8r999+fs88+O4sXL861116befP88h0A08OoATbJ\nPyf5WCkBwJqxAAAgAElEQVRlUZJ/zECYvX1yygKAsd1000157LHH+l1GR3bZZZf83u/9XtfHO2vW\nrHz0ox/Nsccem3e/+9157LHHsvfee+f666/v68/pXHvttXn961+ff/mXf8nuu+/etzoAmD5GbUJc\na/1ErfXfJHllkseSXFxKubeU8sFSyj6TViEA0NYxxxyT/fbbL48++mgWLlyYG264oe+h8fbbb8/C\nhQv7XgcA08dYV2CTJLXW+5J8NMlHSykHJbk4yQeSzOxxbQAwql5cyWyy8847L/fcc0+SZO3atR03\nG96wYUNmzJiRGTPG9RPx47JixYoceOCBXRsfAIznd2BnlVKWllL+Psk1SX6Y5N/1vDIAYFwuueSS\nnHTSSdl9992zdOnSrFmzJmedddaYn1m0aFHOOuus/MVf/EX22GOPbLvttlm3bl02bNiQc845J/vt\nt1/mzJmTxYsX5wtf2Pzn36+44oocddRR2XXXXbPttttm//33zxe/+MVNhlmxYkUOOuigrs4rAFu3\nsR7i9Jokb0lydJJbk/xDkmW11icnqTYAoI0rr7wy73rXuzJ//vxcf/312X777XP99dfnM5/5TN7z\nnvdkn302v+vn4YcfzoMPPpgLLrggRx55ZC688MIkyTbbbJM3vvGN+e53v5szzjgjL37xi/P1r389\nb3/727PHHnvkiCOO2DiOlStX5o1vfGNOPfXUzJgxI1/5ylfy1re+NS960Yuy77775oknnsiPfvQj\nARaArhqrCfHpSS5N8ue11l9OUj0AwDjdcMMNectb3pLtttsu1157bRYvXpwkOeGEE/Kxj30s733v\ne/PlL395s8+tXLkySbJ06dKN4TUZaIZ8zTXX5MYbb8zBBx+cJHn1q1+d2267LRdffPEmAfZDH/rQ\nxv8//fTTOeKII3LRRRfl1ltvzb777ps77rgjzzzzjCbEAHTVWA9xOrLW+rfCKwBMPd///vfzhje8\nIUly1VVXZcmSJRv7nX766dlxxx1z5ZVX5sYbb9zss3fccUdmzpyZD3/4wxu71Vpzzjnn5E1velMO\nOuigbNiwYeNr8eLFue+++zYO+9RTT+W8887LQQcdlB133DGzZs3K7Nmzs3bt2my33XZJBpoPz507\nd8QrwACwpbr3pAYAYFLceeedOfroo/PUU0/l8ssvz6te9apN+s+fPz+nnXZakuSUU07Z7PMrV67M\nIYcckoULF27stmrVqtx///257LLLMnv27E1eF1xwQXbcccckA0H32GOPzV/+5V/mD//wD3P55Zfn\n1ltvzTnnnJMkecELXpBk4AnEL3rRi7r6UCgAaPsUYgBgajnggAOyevXqMYc5/fTTc/rpp4/Yb+XK\nlXnlK1+5Sbdf/OIXSZKvfvWrWbRo0WafGQq7N998c6677rp84xvfyGte85qN/S+66KLMmTNnY4Bd\nsWLFxmbIANAtAiwAbEXWr1+fe++9N+95z3s26T4UWnfYYYdNmiO3+vnPf57kt1dak+See+7J5z73\nuRxwwAGZOXNmNmzYkLvuuivLli3rwRwAsDUTYAFgK7Jq1aqsW7dus4crLV68OAcffHDe8Y535Iwz\nzsg+++yT1atX56677sr69es3/izPS17yksycOTMnn3xyjj/++KxatSqf+MQnMmfOnI3jvPfee7N2\n7VpPIAag69yYAgBbkZUrV2bWrFnZf//9N+k+Y8aMXHXVVTnyyCNz1lln5bWvfW1OPPHELF++PEce\neeTG4Z7//Ofns5/9bG6++eYce+yx+drXvpYrrrgia9eu3RhgV6xYMeI0AGCiSq213zW0tWTJkrp8\n+fJ+lwHAJFu1atXGn4Zh62CdA2ydSim31VpHv4dlkCuwAAAANIIACwAAQCMIsAAAADSCAAsAAEAj\nCLAAAAA0ggALAABAIwiwAAAANIIACwAAQCMIsAAAADSCAAsAAEAjCLAAAAA0ggALAABAIwiwAAAA\nNIIACwAAQCMIsAAAADSCAAsA08yZZ56ZUkrOPPPMfpcCAF0lwAIAANAIs/pdAADQXSeccEKOO+64\nLFiwoN+lAEBXCbAAMM0sWLBAeAVgWtKEGAAAgEYQYAEAAGgEARYAGurqq69OKSUvf/nLRx3mhz/8\nYebMmZPddtsta9asmcTqAKD7BFgAaKhXvOIVKaXk9ttvz9q1a0cc5t3vfneeeuqpfPzjH8+8efMm\nuUIA6C4BFgAaav78+XnhC1+YdevWZfny5Zv1//znP59vf/vbed3rXpc3v/nNfagQALrLU4gBaKSb\nbropjz32WL/L6Mguu+yS3/u93+vqOA877LDcddddufnmm3PooYdu7L569eqccsopmTNnTs4///yu\nThMA+sUVWABosMMPPzzJQKAf7tRTT80jjzyS973vfXne857Xj9Jy7bXXppSS+++/vy/TB2D6cQUW\ngEbq9pXMpjrssMOSJDfffPPGbt/73vdy8cUXZ999981pp53Wr9Jy++23Z+HChdl99937VgMA04sr\nsADQYLvvvnue85zn5KGHHsqPf/zjrF+/Pscff3xqrfn0pz+dbbbZZlzj2bBhQ5555pmu1rZixYoc\neOCBXR0nAFs3ARYAGm54M+KPfexjufvuu/O2t70tRx555KifWbRoUc4666z8xV/8RfbYY49su+22\nWbduXZKBMHvOOedkv/32y5w5c7J48eJ84Qtf2OTzV1xxRY466qjsuuuu2XbbbbP//vvni1/84ibD\nrFixIgcddFCX5xaArZkmxADQcIcddlguueSSXHrppfnOd76TnXbaKeeee+6owz/88MN58MEHc8EF\nF+TII4/MhRdemCSZM2dOnnnmmfz7f//v893vfjdnnHFGXvziF+frX/963v72t2ePPfbIEUcckSRZ\nuXJl3vjGN+bUU0/NjBkz8pWvfCVvfetb86IXvSj77rtvnnjiifzoRz8SYAHoKgEWABpu6D7Ya665\nJkly7rnn5tnPfvaow69cuTJJsnTp0o3hdcinPvWpXHPNNbnxxhtz8MEHJ0le/epX57bbbsvFF1+8\nMcB+6EMf2viZp59+OkcccUQuuuii3Hrrrdl3331zxx135JlnntGEGICu0oQYABpun332ya677pok\nOeSQQ7Js2bIxh7/jjjsyc+bMfPjDH96ke60155xzTt70pjfloIMOyoYNGza+Fi9enPvuuy9J8tRT\nT+W8887LQQcdlB133DGzZs3K7Nmzs3bt2my33XZJBpoPz507N/vss08P5hiArZUrsADQcE888USS\nZObMmbngggsyY8bY30+vXLkyhxxySBYuXLhJ91WrVuX+++/PZZddlssuu2yzzy1dujS11hx77LH5\nwQ9+kJNOOikveclLsssuu+Q73/lOTj311LzgBS9IMvAE4he96EVtawGATgiwANBwZ599dh566KH8\n2Z/92bia7K5cuTKvfOUrN+v+i1/8Ikny1a9+NYsWLdqs/8KFC3PzzTfnuuuuyze+8Y285jWv2djv\noosuypw5czYG2BUrVmxsggwA3SLAAkCDfetb38q5556b5z73uTn77LPbDr9+/frce++9ec973rNZ\n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\nRFv4L0AiI1TfP7rcAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b4be710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_x()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Position x/y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_xy():\n",
    "    fig = plt.figure(figsize=(16,16))\n",
    "    plt.scatter(xt,yt, s=20, label='State', c='k')\n",
    "    plt.scatter(xt[0],yt[0], s=100, label='Start', c='g')\n",
    "    plt.scatter(xt[-1],yt[-1], s=100, label='Goal', c='r')\n",
    "\n",
    "    plt.xlabel('X')\n",
    "    plt.ylabel('Y')\n",
    "    plt.title('Position')\n",
    "    plt.legend(loc='best')\n",
    "    plt.axis('equal')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA78AAAOjCAYAAABz9LN6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X+UnWVhL/rvE7Ins02IjZK6UCCjqBURyiSjty5qCy1Q\nZZ279LCwSKvV3tzDUSw9h9vFUnPOrefcW6jepeIPvO2l4AXRxgtUq8sD99a01LNsUZmJlBZQflRS\nUYqjoiYlyQyZ5/4xk3QmmWQyk5nZs9/5fNbKmj3v++y9n+Evvuv7Ps9Taq0BAACAJlvR6QkAAADA\nQhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXALpcKeWUUsquUspxRxizq5TyosWc\nFwAsJcIvAHRAKeWxUsruiVD6ZCnlplLKmrl8Vq31n2qta2qt+yY++69LKf/zQWPW1Fr/cT7mDgDd\nSPgFgM75H2uta5JsTDKQ5D93eD4A0FjCLwB0WK31u0nuTPKKUsrzSylfKKX8qJTySCnl3+0fV0p5\nVSllsJTy04m2+EMT1/tKKbWUsrKUcnWS1yS5bqJVvm5iTC2lvHji9bNLKZ8spQyXUnaUUv5zKWXF\nxL23lVK+Ukr5QCnlqVLKt0spr1vs/yYAMN9WdnoCALDclVJOTnJhks8m+UySf0jy/CQvS/KlUsqj\ntda/SvKRJB+ptd4y8Yj0Kw7+rFrrfyqlnJ3kU7XWGw7zlR9L8uwkL0ry3CR/keSJJDdO3P8fktyc\n5IQklyW5sZTyglprnZc/GAA6QPMLAJ3z56WUHyf5SpIvJ7k+ydlJ3lVr3VNrvTfJDUl+a2L8aJIX\nl1JOqLXuqrV+dbZfOLEp1puSvKfWurPW+liSDyZ5y6RhO2qtfzKxhvjmJCcmed7c/kQAWBqEXwDo\nnDfUWn+m1rqh1np5xtveH9Vad04asyPJCyZeb07y0iTfLKXcU0r5N3P4zhOStCY+d7rvSJJ/3v+i\n1vr0xMs5bcYFAEuF8AsAS8f3kjynlHL8pGunJPluktRaH661XprkZ5O8P8ntpZTV03zOkR5P/kHG\nG+QN030HADSV8AsAS0St9TtJ/jbJH5ZSekspZ2a87f1UkpRS3lxKWV9rHUvy44m3jU3zUU9mfD3v\ndN+xL8mtSa4upRxfStmQ5H/Z/x0A0FTCLwAsLZcm6ct4C/y5JO+ttW6buPfaJPeXUnZlfPOrN9Va\nd0/zGR9JcvHEbs0fneb+FUn+Jck/Zny98Z8m+cS8/hUAsMQUGzcCAADQdJpfAAAAGk/4BQAAoPGE\nXwAAABpP+AUAAKDxhF8AAAAab2WnJ7DQTjjhhNrX19fpaQAAALAAhoaGflBrXT/TuMaH376+vgwO\nDnZ6GgAAACyAUsqOoxnnsWcAAAAaT/gFAACg8YRfAAAAGq/xa34BAACaZHR0NI8//nj27NnT6aks\nqt7e3px00klptVpzer/wCwAA0EUef/zxHH/88enr60sppdPTWRS11vzwhz/M448/nhe+8IVz+gyP\nPQMAAHSRPXv25LnPfe6yCb5JUkrJc5/73GNqu4VfAACALrOcgu9+x/o3C78AAADM2tVXX53TTz89\nZ555Zs4666x87Wtfy4c//OE8/fTTM773aMfNJ+EXAACAWbn77rvzxS9+Mdu3b899992Xbdu25eST\nTxZ+AQAA6Jzh4eHcc889GR4enpfPe+KJJ3LCCSdk1apVSZITTjght99+e773ve/l3HPPzbnnnpsk\necc73pGBgYGcfvrpee9735sk+ehHP3rIuL/4i7/Iq1/96mzcuDFvfOMbs2vXrnmZ52Sl1jrvH7qU\nDAwM1MHBwU5PAwAAYF48+OCDOe200456/NatW7N58+b09PRkZGQkN954Yy699NJjmsOuXbvyi7/4\ni3n66adz3nnn5ZJLLskv//Ivp6+vL4ODgznhhBOSJD/60Y/ynOc8J/v27cuv/uqv5qMf/WjOPPPM\nKeN+8IMf5KKLLsqdd96Z1atX5/3vf3/27t2b3//93z+qv72UMlRrHZhpzppfAACAhhoeHs7mzZuz\ne/fu/OQnP8nu3buzefPmY26A16xZk6GhoVx//fVZv359Lrnkktx0002HjLv11luzcePG9Pf35/77\n788DDzxwyJivfvWreeCBB3L22WfnrLPOys0335wdO3Yc0/ym45xfAACAhnrsscfS09OT3bt3H7jW\narXy2GOPZf369cf02ccdd1zOOeecnHPOOTnjjDNy8803T7n/7W9/Ox/4wAdyzz33ZN26dXnb2942\n7VFFtdacf/752bp16zHNZyaaXwAAgIbq6+vLyMjIlGujo6Pp6+s7ps/91re+lYcffvjA7/fee282\nbNiQ448/Pjt37kyS/PSnP83q1avz7Gc/O08++WTuvPPOA+Mnj/uFX/iF/M3f/E0eeeSRJMm//Mu/\n5KGHHjqm+U1H8wsAANBQ69evz4033pjNmzen1WpldHQ0N9544zG3vrt27coVV1yRH//4x1m5cmVe\n/OIX5/rrr8/WrVvz2te+Ns9//vNz1113pb+/Py972cty8skn5+yzzz7w/ssuu2zKuJtuuimXXnpp\n9u7dmyT5gz/4g7z0pS89pjkezIZXAAAAXWS2G14l42t/H3vssfT19R1z8O2kY9nwSvMLAADQcOvX\nr+/q0DsfrPkFAACg8YRfAAAAGk/4BQAAoPGEXwAAABpP+AUAAKDxhF8AAICGevRHj+by/3Z51v7h\n2qz4ryuy9g/X5vL/dnke/dGjx/zZV199dU4//fSceeaZOeuss/K1r30tH/7wh/P000/P+rNuuumm\nfO973zvmOR2J8AsAANBAdz58Z8784zNzw/YbsnNkZ2pqdo7szA3bb8iZf3xm7nz4zjl/9t13350v\nfvGL2b59e+67775s27YtJ5988pzC7759+4RfAAAAZu/RHz2ai2+7OE+PPp3RsdEp90bHRvP06NO5\n+LaL59wAP/HEEznhhBOyatWqJMkJJ5yQ22+/Pd/73vdy7rnn5txzz02SvOMd78jAwEBOP/30vPe9\n7z3w/r6+vrzrXe/Kxo0bs3Xr1gwODuY3f/M3c9ZZZ2X37t1z/KuPTPgFAABomA/e/cGM7hs94pjR\nfaO59qvXzunzL7jggnznO9/JS1/60lx++eX58pe/nN/93d/N85///Nx111256667kow/Gj04OJj7\n7rsvX/7yl3Pfffcd+IznPve52b59e9785jdnYGAgn/70p3Pvvfem3W7PaU4z6Vj4LaX0llK+Xkr5\nu1LK/aWU/zpx/TmllC+VUh6e+Llu0nveU0p5pJTyrVLKr3Vq7gAAAEvZp+771CGN78FGx0Zzy323\nzOnz16xZk6GhoVx//fVZv359Lrnkktx0002HjLv11luzcePG9Pf35/77788DDzxw4N4ll1wyp++e\nq5WL+m1T7U3yK7XWXaWUVpKvlFLuTHJRkr+stb6vlPLuJO9O8q5SysuTvCnJ6Umen2RbKeWltdZ9\nnfoDAAAAlqJdI7vmddx0jjvuuJxzzjk555xzcsYZZ+Tmm2+ecv/b3/52PvCBD+See+7JunXr8ra3\nvS179uw5cH/16tVz/u656FjzW8ft/y/dmvhXk7w+yf7/ajcnecPE69cn+UytdW+t9dtJHknyqkWc\nMgAAQFdY07NmXscd7Fvf+lYefvjhA7/fe++92bBhQ44//vjs3LkzSfLTn/40q1evzrOf/ew8+eST\nufPOw2+wNfl9C6WTzW9KKcclGUry4iQfr7V+rZTyvFrrExND/jnJ8yZevyDJVye9/fGJawAAAEzy\n5jPfnBu233DER59bK1p5y5lvmdPn79q1K1dccUV+/OMfZ+XKlXnxi1+c66+/Plu3bs1rX/vaA2t/\n+/v787KXvSwnn3xyzj777MN+3tve9ra8/e1vT7vdzt13370g635LrXXeP3TWkyjlZ5J8LskVSb5S\na/2ZSfeeqrWuK6Vcl+SrtdZPTVy/Mcmdtdbbp/m8y5JcliSnnHLKph07dizGnwEAALDgHnzwwZx2\n2mlHHPPojx7NmX98Zp4ePfyxQ89qPSv3vf2+nPqcU+d7igtmur+9lDJUax2Y6b1LYrfnWuuPk9yV\n5LVJniylnJgkEz+/PzHsu0lOnvS2kyauTfd519daB2qtA+vXr1+4iQMAACxBpz7n1Nz+xtvzrNaz\n0lrRmnKvtaKVZ7WeldvfeHtXBd9j1cndntdPNL4ppbSTnJ/km0m+kOStE8PemuTzE6+/kORNpZRV\npZQXJnlJkq8v7qwBAAC6w+te8rrc9/b7ctmmy7J21dqsKCuydtXaXLbpstz39vvyupe8rtNTXFSd\nXPN7YpKbJ9b9rkhya631i6WUu5PcWkrZnGRHkl9Pklrr/aWUW5M8kOSZJO+00zMAAMDhnfqcU3Pd\nhdfluguv6/RUOq5j4bfWel+S/mmu/zDJrx7mPVcnuXqBpwYAAEDDLIk1vwAAALCQhF8AAAAaT/gF\nAABoqkcfTS6/PFm7NlmxYvzn5ZePXz9GTz75ZH7jN34jL3rRi7Jp06a8+tWvzuc+97lZf85jjz2W\nV7ziFcc8n5kIvwAAAE10553JmWcmN9yQ7NyZ1Dr+84Ybxq/feeecP7rWmje84Q35pV/6pfzjP/5j\nhoaG8pnPfCaPP/74PP4B80v4BQAAaJpHH00uvjh5+ulkdHTqvdHR8esXXzznBviv/uqv0tPTk7e/\n/e0Hrm3YsCFXXHFF9uzZk9/+7d/OGWeckf7+/tx1111Jxhve17zmNdm4cWM2btyYv/3bv53znzcX\nnTzqCAAAgIXwwQ8eGnoPNjqaXHttct3sj0G6//77s3HjxmnvffzjH08pJX//93+fb37zm7ngggvy\n0EMP5Wd/9mfzpS99Kb29vXn44Ydz6aWXZnBwcNbfPVfCLwAAQNN86lNHF35vuWVO4fdg73znO/OV\nr3wlPT09Oemkk3LFFVckSV72spdlw4YNeeihh7Jhw4b8zu/8Tu69994cd9xxeeihh475e2dD+AUA\nAGiaXbvmd9xBTj/99PzZn/3Zgd8//vGP5wc/+EEGBgZy0kknTfuea6+9Ns973vPyd3/3dxkbG0tv\nb++cvnuurPkFAABomjVr5nfcQX7lV34le/bsyR/90R8duPb0008nSV7zmtfk05/+dJLkoYceyj/9\n0z/l537u5/KTn/wkJ554YlasWJFbbrkl+/btm9N3z5XwCwAA0DRvfnPSah15TKuVvOUtc/r4Ukr+\n/M//PF/+8pfzwhe+MK961avy1re+Ne9///tz+eWXZ2xsLGeccUYuueSS3HTTTVm1alUuv/zy3Hzz\nzfn5n//5fPOb38zq1avn9N1zVWqti/qFi21gYKAu5iJqAACAhfTggw/mtNNOO/KgRx8dP85ooo2d\n1rOeldx3X3LqqfM7wQU03d9eShmqtQ7M9F7NLwAAQNOcempy++3jAffgBrjVGr9+++1dFXyPlfAL\nAADQRK973Xize9llydq1yYoV4z8vu2z8+ute1+kZLiq7PQMAADTVqaeOH2U0D8cZdTvNLwAAQJdp\n+t5N0znWv1n4BQAA6CK9vb354Q9/uKwCcK01P/zhD4/pbGCPPQMAAHSRk046KY8//niGh4c7PZVF\n1dvbm5NOOmnO7xd+AQAAukir1coLX/jCTk+j63jsGQAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEX\nAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzhFwAAgMYT\nfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABo\nPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzhFwAA\ngMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34B\nAABoPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzh\nFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDG\nE34BAABoPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAA\naDzhFwAAgMYTfgEAAGg84RcAAIDGE34BAABoPOEXAACAxhN+AQAAaDzhFwAAgMYTfgEAAGi8joXf\nUsrJpZS7SikPlFLuL6X8h4nr/6WU8t1Syr0T/y6c9J73lFIeKaV8q5Tya52aOwAAAN1lZQe/+5kk\nv1dr3V5KOT7JUCnlSxP3rq21fmDy4FLKy5O8KcnpSZ6fZFsp5aW11n2LOmsAAAC6Tsea31rrE7XW\n7ROvdyZ5MMkLjvCW1yf5TK11b63120keSfKqhZ8pAAAA3W5JrPktpfQl6U/ytYlLV5RS7iulfKKU\nsm7i2guSfGfS2x7PkcMyAAAAJFkC4beUsibJnyX5j7XWnyb5oyQvSnJWkieSfHAOn3lZKWWwlDI4\nPDw8r/MFAACg+3Q0/JZSWhkPvp+utX42SWqtT9Za99Vax5L8Sf710ebvJjl50ttPmrh2iFrr9bXW\ngVrrwPr16xfuDwAAAKArdHK355LkxiQP1lo/NOn6iZOG/dsk/zDx+gtJ3lRKWVVKeWGSlyT5+mLN\nFwAAgO7Vyd2ez07yliR/X0q5d+LaliSXllLOSlKTPJbk3ydJrfX+UsqtSR7I+E7R77TTMwAAAEej\nY+G31vqVJGWaW3cc4T1XJ7l6wSYFAABAI3V8wysAAABYaMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIA\nANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIv\nAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n\n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQ\neMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAA\nAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wC\nAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjC\nLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACN\nJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA\n0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8A\nAACNJ/wCAADQeMIvAAAAjSf8AgAA0HjCLwAAAI0n/AIAANB4wi8AAACNJ/wCAADQeMIvAADAcvXo\no8nllydr1yYrVoz/vPzy8esN07HwW0o5uZRyVynlgVLK/aWU/zBx/TmllC+VUh6e+Llu0nveU0p5\npJTyrVLKr3Vq7gAAAF3vzjuTM89Mbrgh2bkzqXX85w03jF+/885Oz3BedbL5fSbJ79VaX57kF5K8\ns5Ty8iTvTvKXtdaXJPnLid8zce9NSU5P8tok/2cp5biOzBwAAKCbPfpocvHFydNPJ6OjU++Njo5f\nv/jiRjXAHQu/tdYnaq3bJ17vTPJgkhckeX2SmyeG3ZzkDROvX5/kM7XWvbXWbyd5JMmrFnfWAAAA\nDfDBDx4aeg82Oppce+3izGcRLIk1v6WUviT9Sb6W5Hm11icmbv1zkudNvH5Bku9MetvjE9cAAACY\nhbFbbjm68HvLLYszoUXQ8fBbSlmT5M+S/Mda608n36u11iR1Dp95WSllsJQyODw8PE8zBQAA6H5b\nt25Ndu06usFHO64LdDT8llJaGQ++n661fnbi8pOllBMn7p+Y5PsT17+b5ORJbz9p4tohaq3X11oH\naq0D69evX5jJAwAAdInh4eHcc889efDBB7N58+bsPNo3rlmzkNNaVJ3c7bkkuTHJg7XWD0269YUk\nb514/dYkn590/U2llFWllBcmeUmSry/WfAEAALrR1q1bs2HDhpx//vnp7+9PknwqychMb2y1kre8\nZaGnt2hWdvC7z07yliR/X0q5d+LaliTvS3JrKWVzkh1Jfj1Jaq33l1JuTfJAxneKfmetdd/iTxsA\nAGDpGx4ezje+8Y1s3rw5u3fvzu7duw/c+1CStyXpOdIHtFrJlVcu7CQXUcfCb631K0nKYW7/6mHe\nc3WSqxdsUgAAAA2wdevWbN68OStWrJgSepOkt7c33601v7ViRT65e3d6jzsux+2b1Cu2WuP/br89\nOfXURZ75wulk8wsAAMA8GB4ezmOPPZa+vr4kOdD2TqeUku3bt2fXrl3ZU2tWf/KT47s679o1vsb3\nLW8Zb3wbFHwT4RcAAKCr7W95e3p6MjIyki1btqSnp+eQ8Lt69eqMjY3lxhtvzGmnnfavN171quS6\n6xZ51ouvjJ8m1FwDAwN1cHCw09MAAACYN/ub3jVr1mTTpk1Tgm5vb29KKYdc+/znP5/+/v407USc\nUspQrXVgpnEdP+cXAACAozfd7s2T9fT0ZMuWLWm321m7dm3a7XY+8YlP5IILLmhc8J0NzS8AAECX\nGB4ezoYNGw67njdJ2u12duzYkSQH1gE3OfQebfNrzS8AAEAXGB4ezh133JGVK6fGuN7e3tRas2rV\nqoyOjubGG288EHabHHpnS/gFAABYYibv3rx+/foDm1qtXLkyO3funDJ28u7NTW95j4XwCwAAsIQc\nvHvztddemyuvvPKQR52PP/74PPPMM4fu3sy0rPkFAABYIqZb07tq1ar09PRMaXzXrFmT6667Lhde\neOGyb3rt9gwAANBFDremt9VqZWRkZMq1ffv2Cb6zJPwCAAB0wPDwcO65554MDw8fOL7oiiuuOGRN\n7759+/KRj3xkytFFkze14uhY8wsAALDIJq/r3bt3b8bGxg5pdyev6b300ktz0UUXLYujixaK8AsA\nALCIhoeHs3nz5uzevfuw5/WuWbMmH/vYx6Y82rx+/Xqh9xgIvwAAAItg//FFTz31VHp6eg4bfBNr\neheC8AsAALDApnvMebJWq5WVK1em1WpldHTUmt4FIPwCAADMs/0tb19fX5Ic8phzq9VKu92eEnbP\nO+88a3oXkPALAAAwjya3vCMjI9myZcshjzm32+3cdtttWbdu3ZSwK/QunFJr7fQcFtTAwEAdHBzs\n9DQAAIAG29/0rlmzJps2bZoSdHt7e1NKOST87tixQ9idB6WUoVrrwEzjnPMLAABwDPaf0Xv++een\nv7//kPs9PT3ZsmWLc3o7TPMLAAAwS0dqeg+2v+VNYk3vAjja5teaXwAAgFmYvKZ3z549WbFi6gO1\nvb29qbVm1apVh+zcLPR2jvALAABwlIaHhw/ZuflgpZRs3749u3bt0vIuIcIvAADAURgeHs4dd9yR\n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\nV3z/yujaFaOvz74OAAAAG7pks/7DVfVEkr+5ykv/srX22Gb9vqPf+84kdybJe9/73s38rQAAAJgA\nmxa/rbUbL+BfezXJVSu+v3J07dXR12dfX+v3vi/JfUkyNzfXLmAdAAAAdGTcPvb8eJLbqurSqrom\nSw+2+nZr7bUkf1VVHxo95fnjSTZ1egwAAEA/hvpRRx+tqleSfDjJH1bV15OktfZskoeTPJfka0k+\n1Vp7c/Sv/ZMkX8jSQ7BeTPLVLV84AAAAE6mWHp7cr7m5uTY/Pz/0MgAAANgEVXW4tTa30fvG7WPP\nAAAAcNGJXwAAALonfgEAAOie+AUAAKB74hcAAIDuiV8AAAC6J34BAADonvgFAACge+IXAACA7olf\nAAAAuid+AQAA6J74BQAAoHviFwAAgO6JXwAAALonfgEAAOie+AUAAKB74hcAAIDuiV8AAAC6J34B\nAADonvgFAACge+IXAACA7olfAAAAuid+AQAA6J74BQAAoHviFwAAgO5Va23oNWyqqlpIcnTodZyH\nH0nyl0MvgjPYk/FjT8aPPRk/9mT82JPxY0/Gjz0ZP5O0J1e31n50ozd1H7+ToqrmW2tzQ6+Dt9iT\n8WNPxo89GT/2ZPzYk/FjT8aPPRk/Pe6Jjz0DAADQPfELAABA98Tv+Lhv6AVwDnsyfuzJ+LEn48ee\njB97Mn7syfixJ+Onuz1x5hcAAIDumfwCAADQPfE7sKq6uaqer6oXqupfDL2e7aqqXqqq71bVd6pq\nfnTt3VX1jar609E/9w69zp5V1Rer6vWqembFtTX3oKo+M7pvnq+qjwyz6r6tsSefrapXR/fKd6rq\nZ1a8Zk82WVVdVVXfrKrnqurZqvr10XX3ykDW2RP3ykCqamdVfbuq/tdoT/716Lr7ZCDr7In7ZEBV\ntaOqjlTVV0bfd3+P+NjzgKpqR5L/neSmJK8keTLJ7a215wZd2DZUVS8lmWut/eWKa7+d5Aettc+N\n/o+Jva21fz7UGntXVX83yfEkv9da++Do2qp7UFUfSPJgkhuS/FiSJ5L8RGvtzYGW36U19uSzSY63\n1j5/1nvtyRaoqsuTXN5ae6qq3pXkcJKfS/KJuFcGsc6e/KO4VwZRVZVkV2vteFVNJ/nvSX49yc/H\nfTKIdfbk5rhPBlNV/zTJXJI9rbWf3Q5/7zL5HdYNSV5orf1Za+1kkoeS3DrwmnjLrUm+NPr6S1n6\nywybpLX2x0l+cNbltfbg1iQPtdZOtNa+n+SFLN1PXERr7Mla7MkWaK291lp7avT1/0vyvSRXxL0y\nmHX2ZC32ZJO1JcdH306PfrW4Twazzp6sxZ5ssqq6Msk/SPKFFZe7v0fE77CuSPLyiu9fyfp/YLJ5\nWpInqupwVd05uvae1tpro6//T5L3DLO0bW2tPXDvDOvXqurp0ceilz8SZU+2WFXtS7I/yf+Me2Us\nnLUniXtlMKOPc34nyetJvtFac58MbI09SdwnQ/n3Sf5ZksUV17q/R8QvLPk7rbXrk9yS5FOjj3ue\n1pbOBzgjMCB7MDbuTfLjSa5P8lqSe4ZdzvZUVbuT/H6S32it/dXK19wrw1hlT9wrA2qtvTn6c/3K\nJDdU1QfPet19ssXW2BP3yQCq6meTvN5aO7zWe3q9R8TvsF5NctWK768cXWOLtdZeHf3z9SR/kKWP\ncvzF6CzX8pmu14db4ba11h64dwbSWvuL0V9gFpP8bt762JM92SKj83K/n+S/ttYeHV12rwxotT1x\nr4yH1tr/TfLNLJ0tdZ+MgZV74j4ZzE8l+YejZ948lOTvV9UD2Qb3iPgd1pNJrq2qa6pqJsltSR4f\neE3bTlXtGj2kJFW1K8nBJM9kaS9+afS2X0ry2DAr3NbW2oPHk9xWVZdW1TVJrk3y7QHWt+0s/6E4\n8tEs3SuJPdkSo4fG3J/ke621f7viJffKQNbaE/fKcKrqR6vqb4y+ns3Sg0X/JO6Tway1J+6TYbTW\nPtNau7K1ti9L/fFHrbU7sg3ukUuGXsB21lr7YVX9apKvJ9mR5IuttWcHXtZ29J4kf7D095dckuS/\ntda+VlVPJnm4qv5xkqNZenInm6SqHkzy00l+pKpeSfKvknwuq+xBa+3Zqno4yXNJfpjkU5P4xMFx\nt8ae/HRVXZ+lj0K9lOSXE3uyhX4qyS8m+e7o7FySHIp7ZUhr7cnt7pXBXJ7kS6OfqjGV5OHW2leq\n6ltxnwxlrT35L+6TsdL9nyV+1BEAAADd87FnAAAAuid+AQAA6J74BQAAoHviFwAAgO6JXwAAALon\nfgFgwlXVVVX1/ap69+j7vaPv9w27MgAYH+IXACZca+3lJPdm6Wc0ZvTP+1prLw22KAAYM37OLwB0\noKqmkxxO8sUkn0xyfWvt1LCrAoDxccnQCwAA3rnW2qmquivJ15IcFL4AcCYfewaAftyS5LUkHxx6\nIQAwbsQvAHSgqq5PclOSDyX5dFVdPvCSAGCsiF8AmHBVVVl64NVvtNb+PMm/SfL5YVcFAONF/ALA\n5Ptkkj9vrX1j9P3vJHl/Vf29AdcEAGPF054BAADonskvAAAA3RO/AAAAdE/8AgAA0D3xCwAAQPfE\nLwAAAN0TvwAAAHRP/AIAANA98QsAAED3/j9j2cfMvGc3lgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b969b10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_xy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Conclusion"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "![Nice](http://www.troll.me/images/stifler-thumbs-up/nice.jpg)\n",
    "\n",
    "It works pretty well. That was basically just dead reckoning, because no position measurement came in."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "To use this notebook as a presentation type:\n",
    "\n",
    "`jupyter-nbconvert --to slides Kalman-Filter-CV.ipynb --reveal-prefix=reveal.js --post serve` \n",
    "\n",
    "Questions? [@Balzer82](https://twitter.com/balzer82)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
